package com.fort.teachermanagementsys.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDateTime;

@Getter
@Setter
@TableName("schedule")
@ApiModel(value = "课次对象", description = "课程安排信息")
public class Schedule implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("课次ID")
    @TableId(type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("课次名称")
    @TableField("topic")
    private String topic;

    @ApiModelProperty("所属课程ID")
    @TableField("course_id")
    private Integer courseId;

    @ApiModelProperty("班级ID")
    @TableField("class_id")
    private Integer classId;

    @ApiModelProperty("上课日期")
    @TableField("date")
    private LocalDateTime date;

    @ApiModelProperty("上课时段")
    @TableField("time")
    private String time;

    @ApiModelProperty("讲师")
    @TableField("instructor")
    private String instructor;

    @ApiModelProperty("教务")
    @TableField("assistant")
    private String assistant;

    @ApiModelProperty("上课教室")
    @TableField("classroom")
    private String classroom;

    @ApiModelProperty("单次课耗（小时）")
    @TableField("duration")
    private Double duration;

    @ApiModelProperty("实到人数")
    @TableField("attendance_actual")
    private Integer attendanceActual;

    @ApiModelProperty("应到人数")
    @TableField("attendance_expected")
    private Integer attendanceExpected;

    @ApiModelProperty("上课模式")
    @TableField("mode")
    private String mode;

    @ApiModelProperty("课次状态")
    @TableField("status")
    private String status;

    @ApiModelProperty("创建时间")
    @TableField("created_at")
    private LocalDateTime createdAt;

    @ApiModelProperty("更新时间")
    @TableField("updated_at")
    private LocalDateTime updatedAt;
}
